윈도우 API
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템의 기능에 접근하기 위한 인터페이스 집합이다. 윈도우 API는 윈도우의 역사와 함께 발전해 왔으며, Win16, Win32, Win64 등 다양한 버전이 존재한다. Win32는 현재 가장 널리 사용되는 버전이며, 유니코드 지원을 통해 다양한 언어 환경을 지원한다. 윈도우 API는 윈도우 시스템의 저수준 기능을 제공하여 유연성을 제공하지만, 복잡성으로 인해 학습이 어렵다는 비판도 있다. 이러한 단점을 보완하기 위해 MFC, ATL, .NET Framework 등 다양한 래퍼 라이브러리가 개발되었으며, 윈도우 API는 다양한 프로그래밍 언어와 환경에서 활용된다.
더 읽어볼만한 페이지
- 윈도우 API - 유니버설 윈도우 플랫폼
유니버설 윈도우 플랫폼(UWP)은 마이크로소프트에서 개발한 애플리케이션 모델로, Windows 10, 11 등 다양한 기기에서 실행되는 앱 개발을 위한 통합 플랫폼이며, Visual Studio를 통해 개발되고 XAML Islands를 통해 기존 WinAPI 기반 애플리케이션에서도 활용 가능하다. - 윈도우 API - WinG
WinG는 윈도우 3.x의 그래픽 성능 향상을 위해 개발된 기술로, DirectX로 발전하는 기반이 되었으며 한국 게임 산업에도 영향을 미쳤다. - 위젯 툴킷 - Tk (소프트웨어)
Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다. - 위젯 툴킷 - Qt (소프트웨어)
Qt는 C++로 작성된 크로스 플랫폼 애플리케이션 개발 프레임워크로, GUI, 멀티미디어, 네트워크 등 다양한 기능을 제공하며, 시그널과 슬롯 메커니즘과 Qt Creator 등의 개발 도구를 통해 데스크톱, 임베디드, 모바일 UI 개발에 널리 사용된다. - 마이크로소프트 개발 도구 - 비주얼 스튜디오
비주얼 스튜디오는 마이크로소프트가 개발한 통합 개발 환경(IDE)으로, 다양한 프로그래밍 언어와 플랫폼을 지원하며 소프트웨어 개발에 필요한 도구와 기능을 제공한다. - 마이크로소프트 개발 도구 - 윈도우 참가자 프로그램
윈도우 참가자 프로그램은 마이크로소프트에서 윈도우 운영체제 개선을 위해 사용자 피드백을 수집하고 새로운 기능을 시험하는 프로그램으로, 마이크로소프트 계정을 가진 누구나 참여하여 미리 보기 빌드를 사용해보고 피드백을 제공할 수 있으며, 참가자들은 다양한 채널을 통해 업데이트를 받는다.
윈도우 API | |
---|---|
윈도우 API | |
![]() | |
개발자 | 마이크로소프트 |
출시일 | 1985년 11월 20일 |
대체 | 도스 API |
운영 체제 | 마이크로소프트 윈도우, OS/2 |
장르 | API |
라이선스 | 사유 소프트웨어 |
웹사이트 | 마이크로소프트 윈도우 앱 |
윈도우 API (한국어) | |
![]() |
2. 역사
윈도우 API의 역사는 윈도우 운영체제의 발전과 밀접하게 연결되어 있다. 모든 윈도우 운영체제는 버전마다 새로운 API 함수를 추가했지만, 구조가 크게 바뀔 때만 API를 가리키는 이름이 바뀌었다. 마이크로소프트는 이전 버전, 현재 버전, 그리고 나중에 발표될 버전의 API를 통틀어 ‘윈도우 API’라는 이름으로 부르기 시작했다.
윈도우 API는 윈도우 운영체제에서 실행되는 응용 프로그램이 윈도우의 다양한 기능을 활용할 수 있도록 제공되는 프로그래밍 인터페이스다. 이러한 기능들은 크게 여덟 가지 범주로 나눌 수 있다.[73] 각 기능은 주로 동적 링크 라이브러리(DLL) 파일에 구현되어 있으며, C 언어 형식의 함수나 컴포넌트 오브젝트 모델(COM) 인터페이스 형태로 제공된다.[30][31]
Windows API는 항상 프로그래머들에게 Windows 시스템의 기저 구조를 상당 부분 노출해 왔다. 이는 애플리케이션에 유연성과 강력한 제어력을 제공했지만, 그래픽 사용자 인터페이스와 관련된 다양한 저수준 작업을 처리해야 하는 책임도 수반했다.
찰스 페졸드(Charles Petzold)는 초기 윈도우 프로그래밍의 복잡성에 대해 언급하며, "Hello, world" 프로그램조차 150줄이 넘는 코드가 필요했다고 설명했다.[16] 그러나 그는 이후 간단한 MessageBox 호출로 줄일 수 있었다고 덧붙였다.[17]
시간이 지나면서 Windows 시스템에 다양한 변경 및 추가가 이루어졌고, Windows API는 이를 반영하여 변경되고 확장되었다.[18] Windows 1.0의 Windows API는 450개 미만의 함수 호출을 지원했지만, 최신 버전은 수천 개를 지원한다. 그러나 인터페이스는 대체로 일관성을 유지하여, 오래된 Windows 1.0 애플리케이션도 최신 Windows API에 익숙한 프로그래머에게 익숙하게 보인다.[19]
마이크로소프트는 하위 호환성을 유지하기 위해 노력해 왔다.[20] 이를 위해 이전 버전을 비정상적인 방식으로 사용하는 소프트웨어와의 호환성을 허용하는 해결 방법을 구현하기도 했다. 마이크로소프트 개발자 레이먼드 첸(Raymond Chen)은 애플리케이션이 중단되는 것에 대해 "개인적인 실패로 받아들였다"고 말했다.[21]
Windows API의 가장 큰 변화는 Win16에서 Win32로의 전환이었다. Win32는 Windows NT 3.1과 함께 도입되었고, Win32s는 Windows 95 이전에 Win32의 하위 집합을 사용할 수 있게 했다. Windows 95에서는 API 썽크를 사용하여 32비트 코드가 16비트 코드를 호출하거나 그 반대로 호출할 수 있었다. 64비트 Windows 버전은 WoW64를 통해 32비트 애플리케이션을 실행할 수 있다.[22]
Windows API는 Windows의 각 기능에 접근하기 위한 접점이다. 따라서 다양한 프로그래밍 언어 및 개발 환경에서 Windows API를 사용하는 방법을 제공한다. 특히 C와 C++을 위해서는 Windows SDK를 통해 `
Windows API에 속하는 각 API는 주로 DLL에 구현되어 있으며, C 언어 형식 함수 또는 COM 인터페이스로 기능이 공개되어 있다.
Windows API 역사상 가장 큰 변혁은 Windows NT와 함께 등장한 Win32였다. 포인터와 핸들이 32비트화되고 유니코드 지원이 이루어진 것이 큰 변화이다. 현재는 64비트로의 점진적인 이행이 진행되고 있다. Win64에서는 포인터와 핸들이 64비트화되었지만, 그 외에는 큰 변화는 없다. 64비트 버전 Windows에서는 WOW64를 통해 32비트 응용 프로그램을 실행할 수 있지만, 16비트 응용 프로그램을 실행할 수는 없다.[65][66]
2. 1. Win16
'''Win16'''은 16비트 버전의 마이크로소프트 윈도우에서 사용된 초기 API이다. Win16 API는 주로 kernel.exe(또는 krnl286.exe나 krnl386.exe), user.exe, gdi.exe에 구현되어 있으며, 확장자가 .exe이지만 실제로 이들은 동적 링크 라이브러리이다.[24] Win16은 크게 두 종류로 나뉜다.[46]
Win16이라는 용어 자체는 Win32가 등장한 이후에 사용되기 시작한 역어이다.[46]
2. 2. Win32
Win32는 32비트 버전의 마이크로소프트 윈도우에서 사용하는 API이며, 현재 가장 널리 쓰이는 버전이다. Win32 API의 핵심 DLL은 kernel32.dll, user32.dll, gdi32.dll이다. Win32는 Windows NT와 함께 도입되었다. Windows 95에서는 처음에 Win32c라고 불렸는데, 여기서 'c'는 "compatibility"(호환성)를 의미한다. 이 용어는 나중에 마이크로소프트가 Win32로 변경하였다.
Win32는 다음과 같이 나눌 수 있다.
Windows NT가 x86 이외의 아키텍처로 이식됨에 따라, Win32는 여러 아키텍처용으로 이식되었다.[49] 또한, Windows NT는 아니지만, 과거 Macintosh용 Win32도 존재했으며, Microsoft Visual C++ 4.0 Cross-Development Edition for Macintosh로 크로스 컴파일러와 함께 발매되었다.[50] 이들 아키텍처가 다른 Win32 사이에는 소스 코드 상에서의 호환성이 있다.
Windows API 역사상 가장 큰 변혁은 Windows NT와 함께 등장한 Win32였다. 포인터와 핸들이 32비트화된 것과 유니코드 지원이 이루어진 것이 큰 변화이다.
2. 3. Win64
Win64는 64비트 버전의 윈도우에서 사용되는 API이다. IA-64와 x86-64 아키텍처를 모두 지원하며, ARM64도 지원한다.[25][26][51][52][53] Win32와의 호환성을 유지하면서 64비트 아키텍처의 이점을 활용할 수 있도록 설계되었다.
Win64에서는 포인터와 핸들이 64비트화되었지만, 그 외에는 16비트에서 32비트로 이행했을 때와 같은 큰 변화는 없다. 64비트 버전 윈도우에서는 32비트 응용 프로그램과의 상호 운용성을 위해 핸들의 상위 32비트를 사용하는 메커니즘을 사용한다. 윈도우(HWND)와 같은 사용자 객체 핸들, 브러시(HBRUSH)나 펜(HPEN)과 같은 GDI 객체 핸들, 그리고 뮤텍스, 세마포어, 파일과 같은 명명된 객체 핸들을 32비트/64비트 응용 프로그램 간에 공유하여 프로세스 간 통신에 사용할 수 있다.[64] 또한, 64비트 버전 윈도우에서는 WOW64를 통해 32비트 응용 프로그램을 실행할 수 있지만, 16비트 응용 프로그램은 실행할 수 없다.[65][66]
과거 Windows Server 2003 및 Windows XP에서 IA-64 지원이 시작되었지만, Windows Server 2008 R2를 마지막으로 지원이 중단되었다.[54]
2. 4. 기타 구현
와인 프로젝트는 유닉스 계열 운영 체제에서 Win32 API 호환성 계층을 구현한다.[28] ReactOS는 와인의 많은 부분을 사용하며, 완전한 윈도우 운영 체제를 모방하는 것을 목표로 한다.[28]
3. 주요 기능
윈도우 API는 윈도우 운영체제에서 실행되는 애플리케이션에 윈도우의 각 기능에 접근하기 위한 접점을 제공한다. C/C++ 런타임 라이브러리 중 OS 기능에 접근하는 것은 내부적으로 윈도우 API를 이용하여 구현되어 있다.범주 설명 주요 DLL 파일 (32비트 윈도우 기준) 기본 서비스 파일 시스템, 장치, 프로세스, 스레드, 오류 처리 등 핵심 기능 제공 `kernel32.dll` 고급 서비스 윈도우 레지스트리, 시스템 종료/다시 시작, 윈도우 서비스 관리, 사용자 계정 관리 등 부가 기능 제공 `advapi32.dll` 그래픽 장치 인터페이스 (GDI) 모니터, 프린터 등 출력 장치에 그래픽 출력 `gdi32.dll` 사용자 인터페이스 창, 단추, 스크롤 막대 등 기본적인 컨트롤, 마우스/키보드 입력 처리 `user32.dll`, `comctl32.dll` (윈도우 XP 이후) 공통 대화 상자 라이브러리 파일 열기/저장, 색/글꼴 선택 등 표준 대화 상자 제공 `comdlg32.dll` 공통 컨트롤 라이브러리 상태 표시줄, 진행 표시줄, 도구 모음, 탭 등 고급 컨트롤 제공 `comctl32.dll` 윈도 셸 운영 체제 셸 기능 접근/변경/확장 `shell32.dll`, `shlwapi.dll` 네트워크 서비스 네트워킹 기능 (넷바이오스, 윈속, NetDDE, RPC 등) 제공 `netapi32.dll`
각 API 함수는 C 언어 형식 또는 COM 인터페이스로 공개되며, Win32 (x86)에서 함수의 호출 규약은 stdcall을 기본으로 한다.[30][31]
3. 1. 기본 서비스
윈도우 API의 기본 서비스는 윈도우 시스템에서 사용 가능한 주요 리소스를 제공한다.[74] 여기에는 파일 시스템, 장치, 프로세스, 스레드, 오류 처리 등이 포함된다. 이러한 기능은 16비트 윈도우에서는 `kernel.exe`, `krnl286.exe`, `krnl386.exe` 파일에, 32비트 윈도우에서는 `kernel32.dll`에 위치한다.[74]
3. 2. 고급 서비스
윈도우 API의 고급 서비스는 커널을 넘어서는 부가 기능을 제공한다. 윈도우 레지스트리, 시스템 종료/재시작 (또는 중단), 윈도우 서비스 시작/중지/생성, 사용자 계정 관리 등이 이에 해당한다. 이러한 기능들은 32비트 윈도우에서 `advapi32.dll` 파일에 상주한다.[74]
3. 3. 그래픽 장치 인터페이스 (GDI)
그래픽 장치 인터페이스(GDI)는 모니터, 프린터 등의 출력 장치에 그래픽 콘텐츠를 출력하는 기능을 제공한다.[75] 16비트 윈도우에서는 `gdi.exe`에, 32비트 윈도우에서는 사용자 모드의 `gdi32.dll`에 상주한다. 커널 모드 GDI 지원은 그래픽 드라이버와 직접 통신하는 `win32k.sys`가 제공한다.[76]
3. 4. 사용자 인터페이스
화면 창뿐 아니라 단추와 스크롤 막대와 같은 가장 기본적인 컨트롤을 만들어 관리하고, 마우스와 키보드 입력을 받는 기능, 윈도우의 GUI와 연동하는 기능을 제공한다.[77] 이 기능은 16비트 윈도의 경우 `user.exe`에, 32비트 윈도의 경우 `user32.dll`에 상주한다. 윈도우 XP 버전 이후로 기본 컨트롤은 공통 컨트롤(공통 컨트롤 라이브러리)과 함께 `comctl32.dll`에 상주한다.[5]
3. 5. 공통 대화 상자 라이브러리
응용 프로그램에 파일 열기 및 저장, 색 및 글꼴 선택 등을 위한 표준 대화 상자를 제공한다. 16비트 윈도에서는 `commdlg.dll`에, 32비트 윈도에서는 `comdlg32.dll`에 상주한다. 이 라이브러리는 API의 "사용자 인터페이스" 집합에 들어 있다.[78]
3. 6. 공통 컨트롤 라이브러리
공통 컨트롤 라이브러리는 응용 프로그램이 운영 체제가 제공하는 상태 표시줄, 진행 표시줄, 도구 모음, 탭 등 일부 고급 컨트롤에 접근할 수 있게 해준다.[79] 이 라이브러리는 DLL 파일 형태로, 16비트 윈도에서는 `commctrl.dll`, 32비트 윈도에서는 `comctl32.dll`에 상주한다. 이 라이브러리는 윈도우 API의 "사용자 인터페이스" 집합에 속한다.
3. 7. 윈도 셸
윈도 API의 구성 요소는 응용 프로그램이 운영 체제 셸이 제공하는 기능에 접근하고 변경하며 강화할 수 있게 도와준다.[80][81] 이 구성 요소는 16비트 윈도의 경우 `shell.dll`에, 32비트 윈도의 경우 `shell32.dll`에 상주한다. 셸 라이트웨이트(Shell Lightweight) 유틸리티 기능은 `shlwapi.dll`에 있다. 이 라이브러리는 API의 "사용자 인터페이스" 집합에 들어 있다.
3. 8. 네트워크 서비스
운영 체제에 다양한 네트워킹 기능을 제공한다.[82] 여기에는 넷바이오스, 윈속, NetDDE, RPC 등이 포함된다.
3. 9. 멀티미디어
마이크로소프트는 윈도우 95 OSR2 이후로 DirectX 집합의 API를 모든 윈도 설치본의 일부로 제공하고 있다. DirectX는 멀티미디어와 게임 서비스를 제공한다.[30]
DirectX API는 Windows API 중에서도 변화가 심한 API 중 하나이며, Direct3D RM, DirectDraw, DirectSound, DirectInput, DirectPlay 및 DirectMusic은 Windows Vista 이후 완벽한 호환 기능이 제공되지 않아 일부를 제외하고는 폐지되거나 대체 API에 통합되었다.[39][40]3. 10. 웹
인터넷 익스플로러 웹 브라우저는 응용 프로그램에 자주 쓰이는 수많은 API를 제공하며, 이러한 API들은 윈도우 API의 일부로 간주된다. 인터넷 익스플로러는 윈도우 98 SE 이후 운영 체제에 포함되어 윈도우 98 이후로 웹 관련 서비스를 제공하고 있다.[83] 인터넷 익스플로러는 다음과 같은 기능을 제공한다.
4. 유니코드 지원
Win32 API는 멀티바이트 문자 버전(A 버전)과 유니코드(W 버전) 함수 및 구조체를 모두 제공한다.[56] C/C++ 매크로를 사용하여 컴파일할 때 어떤 버전을 사용할지 선택할 수 있는데, 이는 `UNICODE` 매크로 정의 여부에 따라 결정된다.[56]
예를 들어, `MessageBox` 함수는 `UNICODE` 매크로가 정의되어 있으면 `MessageBoxW`로, 정의되어 있지 않으면 `MessageBoxA`로 정의된다.
```c
#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif
```
문자형에 대해서도 `TCHAR` 형식이 제공되는데, 이는 `UNICODE` 정의 여부에 따라 `CHAR` (char의 typedef) 또는 `WCHAR` (wchar_t의 typedef)로 전환된다. 또한, `TEXT` 매크로를 통해 좁은 문자열 상수/리터럴과 와이드 문자열 상수/리터럴을 전환할 수 있다.
```c
#ifdef UNICODE
#define TEXT(s) L ## s
typedef WCHAR TCHAR;
#else
#define TEXT(s) s
typedef CHAR TCHAR;
#endif
```
이러한 방식 덕분에, 개발자는 컴파일 옵션에 따라 멀티바이트 문자를 사용하는 실행 프로그램과 와이드 문자를 사용하는 실행 프로그램 두 종류를 하나의 소스 코드에서 생성할 수 있다.
Windows NT 계열에서는 내부적으로 유니코드를 사용한다.[58] 따라서 A 버전 API는 W 버전 API를 호출하는 래퍼(wrapper) 역할을 수행한다.[58] 즉, A 버전 API에 입력된 멀티바이트 문자열은 유니코드 문자열로 변환된 후 W 버전 API에 입력되고, W 버전 API의 출력(유니코드 문자열)은 다시 멀티바이트 문자열로 변환되어 A 버전 API의 출력으로 반환된다.
여기서 A는 ANSI, W는 Wide를 의미한다.[59]
5. 비판
Windows API는 Win16을 확장하여 32비트, 64비트로 발전해 왔다. 이 과정에서 기능이 반복적으로 추가되어 매우 복잡해졌고, 그 결과 배우기 어려워졌다는 비판이 있다.[69]
윈도우 8에서 도입된 새로운 설계의 WinRT API는 네임스페이스를 사용하여 체계적으로 정리되었고, 효율적이고 현대적인 애플리케이션 개발을 지원한다. 그러나 Windows 스토어 앱(이후 UWP 앱)은 샌드박스 환경에서 작동하여 제약이 많기 때문에 서드파티 개발의 주류가 되지는 못했다. 결국 기존의 Win32 API나 .NET Framework를 사용한 데스크톱 애플리케이션이 주류를 이루고 있지만, Win32 API를 이용한 개발은 GUI 툴킷의 지원이 부족하고, 예전 방식의 외관을 가진 GUI 위젯만 사용할 수 있다는 등의 문제가 있다.[70]
6. 래퍼 라이브러리
윈도우 API는 저수준 API이므로, 이를 더 쉽게 사용하거나 C/C++ 이외의 언어에서 사용하기 위한 다양한 래퍼 라이브러리와 프레임워크가 존재한다.[15] 이러한 래퍼 라이브러리들은 윈도우 API의 모든 기능을 제공하거나 노출하지는 않지만, 개발자들이 윈도우 API를 더 쉽게 활용할 수 있도록 돕는다.
6. 1. 마이크로소프트
MFC(마이크로소프트 파운데이션 클래스 라이브러리)는 C++클래스를 이용하여 Windows API의 일부 기능을 제공하며, 더 객체 지향적인 방법으로 API와 상호 작용할 수 있게 해준다.[15]ATL(액티브 템플릿 라이브러리)은 C++ 템플릿 라이브러리로, 일부 Windows API 접근을 제공한다.[15]
WTL(윈도우 템플릿 라이브러리)은 ATL을 확장하여 개발되었으며, MFC에 대한 더 작은 대안으로 만들어졌다.[15] CPL 기반의 오픈소스이다.
6. 2. 기타
오브젝트 윈도우 라이브러리(OWL)는 MFC와 동시기에 공개되었으며, 더욱 객체 지향적으로 설계된 래퍼이다. 비주얼 컴포넌트 라이브러리(VCL)는 보랜드가 그 후에 개발한 델파이 기반의 래퍼이다. 윈도우 폼의 기반이 되었다. .NET Framework 및 Windows 버전 .NET Core는 내부적으로 Windows API를 이용하여 구현되지만, 기본 클래스 라이브러리 등은 플랫폼에 의존하지 않도록 추상화되어 있다. 하지만 Windows 고유 기능을 사용한 GUI 프레임워크나 Windows API를 얇게 감싼 부분도 존재하며, `System.Windows` 네임스페이스 및 `Microsoft.Win32` 네임스페이스 등에 정리되어 있다.[71][72]7. 한국 개발 환경에 대한 영향
(이전 출력이 비어있으므로, 수정할 내용이 없습니다. 따라서 빈칸으로 남겨둡니다.)
참조
[1]
웹사이트
Windows API Index
https://learn.micros[...]
[2]
웹사이트
Base Services
http://msdn.microsof[...]
2005-08-28
[3]
웹사이트
Graphics Device Interface
http://msdn.microsof[...]
2005-08-28
[4]
웹사이트
G
http://msdn.microsof[...]
Microsoft Developer Network
2009-01-28
[5]
웹사이트
User Interface
http://msdn.microsof[...]
2005-08-28
[6]
웹사이트
Common Dialog Box Library
http://msdn.microsof[...]
2005-09-22
[7]
웹사이트
Common Control Library
http://msdn.microsof[...]
2005-08-28
[8]
웹사이트
Windows Shell
http://msdn.microsof[...]
2005-08-28
[9]
웹사이트
Shell Programmer's Guide
http://msdn.microsof[...]
2005-08-28
[10]
웹사이트
Network Services
http://msdn.microsof[...]
2005-08-28
[11]
웹사이트
Programming and reusing the browser
http://msdn.microsof[...]
2006-01-22
[12]
웹사이트
Walkthrough: Create a traditional Windows Desktop application (C++)
https://docs.microso[...]
2022-02-23
[13]
서적
WinRT Revealed
Apress
[14]
서적
Borland Delphi 6 Developer's Guide
https://books.google[...]
Sams
[15]
웹사이트
Inside Native Applications
https://docs.microso[...]
2022-04-12
[16]
서적
Programming Microsoft Windows with C#
Microsoft Press
[17]
웹사이트
The Infamous Windows "Hello World" Program
https://www.charlesp[...]
2024-06-30
[18]
웹사이트
Detailed analysis of changes in the Windows API from XP to 10
http://abi-laborator[...]
2016-09-08
[19]
서적
Programming Windows, Fifth Edition
Microsoft Press
[20]
웹사이트
Windows 95 had special code just to fix a bug in the original SimCity
https://www.rockpape[...]
2022-10-08
[21]
웹사이트
What about BOZOSLIVEHERE and TABTHETEXTOUTFORWIMPS?
https://devblogs.mic[...]
2022-06-29
[22]
웹사이트
What's the Difference Between the "System32" and "SysWOW64" Folders in Windows?
https://www.howtogee[...]
2023-04-11
[23]
웹사이트
History of the Windows API
https://web.archive.[...]
2005-10-07
[24]
웹사이트
Overview of the Windows API
http://msdn.microsof[...]
2005-08-28
[25]
웹사이트
Windows XP Professional x64 Edition home page
http://www.microsoft[...]
Microsoft
[26]
웹사이트
Microsoft 64-bit Computing Overview
http://www.microsoft[...]
Microsoft
[27]
웹사이트
MSDN: Getting Ready for 64-bit Windows
http://msdn.microsof[...]
Microsoft
2020-08-19
[28]
웹사이트
WISE
http://hyper.sunjapa[...]
[29]
웹사이트
Windows API index - Win32 apps | Microsoft Docs
https://docs.microso[...]
[30]
웹사이트
__stdcall | Microsoft Docs
https://docs.microso[...]
[31]
문서
x64の場合は__fastcallが採用されている。
[32]
서적
プログラミングWindows第5版 〈上〉
アスキー
[33]
웹사이트
MinWinとVirtual DLLで変わるWindowsカーネル (1/2)|あなたの知らないWindows
https://ascii.jp/ele[...]
[34]
웹사이트
ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)|基礎から覚える 最新OSのアーキテクチャー
https://ascii.jp/ele[...]
[35]
웹사이트
Overview of the Windows API
http://msdn.microsof[...]
2009-07-08
[36]
웹사이트
DirectX 8.0 の紹介 | Microsoft Docs
https://docs.microso[...]
[37]
웹사이트
Getting started with DirectX Graphics - Win32 apps | Microsoft Docs
https://docs.microso[...]
[38]
웹사이트
オーディオのリファレンス | Microsoft Docs
https://docs.microso[...]
[39]
웹사이트
DirectX に関してよく寄せられる質問 | Microsoft Docs
https://docs.microso[...]
[40]
웹사이트
DirectX Frequently Asked Questions - Win32 apps | Microsoft Docs
https://docs.microso[...]
[41]
웹사이트
Windows Multimedia - Win32 apps | Microsoft Docs
https://docs.microso[...]
[42]
웹사이트
OpenGL - Win32 apps | Microsoft Docs
https://docs.microso[...]
[43]
웹사이트
Windows HTTP Services - Win32 apps | Microsoft Learn
https://learn.micros[...]
[44]
웹사이트
本田雅一の「週刊モバイル通信」
https://pc.watch.imp[...]
[45]
웹사이트
Windows Vistaとは何か?(3/3) - @IT
https://atmarkit.itm[...]
[46]
서적
プログラミングWindows 〈上〉
アスキー
2000-10
[47]
서적
プログラミングWindows 〈上〉
アスキー
2000-10
[48]
웹사이트
Microsoft Announces Visual C++ for Windows CE
http://www.microsoft[...]
マイクロソフト
1997-04-01
[49]
웹사이트
Cross-Platform Application Development in Windows NT
http://support.micro[...]
2003-12-01
[50]
웹사이트
Microsoft Visual C++ 4.0 Cross-Development Edition for Macintosh (Archived Visual C++ Technical Articles)
http://msdn.microsof[...]
1995-07
[51]
웹사이트
Microsoft、ARM64対応のデスクトップ版Windows 10を計画か - エキサイトニュース
http://www.excite.co[...]
[52]
웹사이트
マイクロソフト、ARM64向けWindowsアプリの開発と配布を正式サポート - CNET Japan
https://japan.cnet.c[...]
[53]
문서
Windows SDK 10에는 ARM64용 임포트 라이브러리 파일 등이 포함되어 있으며, 기존의 네이티브 데스크톱 앱과 UWP 앱을 개발할 수 있도록 되어 있다.
[54]
웹사이트
マイクロソフト、「Itanium」チップのサポートを終了へ - CNET Japan
https://japan.cnet.c[...]
[55]
웹사이트
デスクトップ アプリで Windows ランタイム API を呼び出す - Windows apps | Microsoft Docs
https://docs.microso[...]
[56]
웹사이트
Working with Strings (Windows)
http://msdn.microsof[...]
マイクロソフト
2010-10-05
[57]
웹사이트
Surrogates and Supplementary Characters
http://msdn.microsof[...]
2009-01-12
[58]
웹사이트
Windows XP Professional の多言語オプションの比較
http://technet.micro[...]
[59]
웹사이트
Unicode in the Windows API
http://msdn.microsof[...]
2010-01-12
[60]
웹사이트
Why is the default 8-bit codepage called "ANSI"?
http://blogs.msdn.co[...]
2004-05-31
[61]
웹사이트
Other Existing Unicode Support
http://msdn.microsof[...]
[62]
웹사이트
Microsoft Layer for Unicode Reference
http://msdn.microsof[...]
[63]
웹사이트
[WinXP] Common Control 6.0 の EM_LIMITTEXT による入力制限
http://support.micro[...]
2009-09-16
[64]
웹사이트
Interprocess Communication Between 32-bit and 64-bit Applications - Win32 apps | Microsoft Docs
https://docs.microso[...]
[65]
웹사이트
Running 32-bit Applications - Win32 apps | Microsoft Docs
https://docs.microso[...]
[66]
웹사이트
64bit Windows時代到来:第3回 アプリケーションの互換性 (1/3) - @IT
https://atmarkit.itm[...]
[67]
웹사이트
Compatibility and Reliability - Win32 apps | Microsoft Docs
https://docs.microso[...]
[68]
웹사이트
Windowsの互換性テクノロジの仕組み(前編)(1/3) - @IT
https://atmarkit.itm[...]
[69]
웹사이트
.NET「本音」相談室(第1回)Q3:どうしていま、.NETなのか?
https://atmarkit.itm[...]
@IT
2007-10-31
[70]
웹사이트
ASCII.jp:UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 (1/2)
https://ascii.jp/ele[...]
[71]
웹사이트
System.Windows Namespace | Microsoft Docs
https://docs.microso[...]
[72]
웹사이트
Microsoft.Win32 Namespace | Microsoft Docs
https://docs.microso[...]
[73]
웹사이트
Overview of the Windows API.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-08-28
[74]
웹사이트
Base Services.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-08-28
[75]
웹사이트
Graphics Device Interface.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-08-28
[76]
웹인용
G
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2009-01-28
[77]
웹사이트
User Interface.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-08-28
[78]
웹사이트
Common Dialog Box Library.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-09-22
[79]
웹사이트
Common Control Library.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-08-28
[80]
웹사이트
Windows Shell.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-08-28
[81]
웹사이트
Shell Programmer's Guide.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-08-28
[82]
웹사이트
Network Services.
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2005-08-28
[83]
웹사이트
Programming and reusing the browser
http://msdn.microsof[...]
마이크로소프트 개발자 네트워크
2006-01-22
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com